package com.beardedhen.harmonybootstrap.api.attributes;

import ohos.app.Context;
import ohos.global.resource.NotExistException;
import ohos.global.resource.WrongTypeException;

import java.io.IOException;
import java.io.Serializable;

/**
 * A Heading defines the text size and padding of its view. Bootstrap supports styles for H1-H6
 * elements out of the box.
 */
public interface BootstrapHeading extends Serializable {

    /**
     * Gets text size.
     *
     * @param context the context
     * @return the text size
     * @throws NotExistException  the not exist exception
     * @throws WrongTypeException the wrong type exception
     * @throws IOException        the io exception
     */
    float getTextSize(Context context) throws NotExistException, WrongTypeException, IOException;

    /**
     * Retrieves the vertical padding for the current BootstrapHeading
     *
     * @param context the current context
     * @return the vertical padding
     * @throws NotExistException  the not exist exception
     * @throws WrongTypeException the wrong type exception
     * @throws IOException        the io exception
     */
    float verticalPadding(Context context) throws NotExistException, WrongTypeException, IOException;

    /**
     * Retrieves the horizontal padding for the current BootstrapHeading
     *
     * @param context the current context
     * @return the horizontal padding
     * @throws NotExistException  the not exist exception
     * @throws WrongTypeException the wrong type exception
     * @throws IOException        the io exception
     */
    float horizontalPadding(Context context) throws NotExistException, WrongTypeException, IOException;
}
